Research
Security News
Threat Actor Exposes Playbook for Exploiting npm to Build Blockchain-Powered Botnets
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
The es6-set npm package provides a polyfill for the ES6 Set data structure, allowing developers to use Set functionalities in environments that do not natively support ES6. It offers methods to add, delete, and manage unique values in a set.
Creating and Initializing a Set
This feature allows the creation of a Set object and initialization with an array of values. The 'has' method checks if a value exists in the set.
const Set = require('es6-set');
const mySet = new Set([1, 2, 3]);
console.log(mySet.has(1)); // true
Adding Values
This feature demonstrates adding values to a Set. The 'add' method appends a new element to the set if it does not already exist.
const Set = require('es6-set');
const mySet = new Set();
mySet.add(1);
mySet.add(2);
console.log(mySet.has(2)); // true
Deleting Values
This feature shows how to remove a specific element from a Set using the 'delete' method.
const Set = require('es6-set');
const mySet = new Set([1, 2, 3]);
mySet.delete(2);
console.log(mySet.has(2)); // false
Clearing the Set
This feature allows clearing all elements from a Set using the 'clear' method, effectively resetting the Set.
const Set = require('es6-set');
const mySet = new Set([1, 2, 3]);
mySet.clear();
console.log(mySet.size); // 0
core-js is a modular standard library for JavaScript, which includes polyfills for many ECMAScript features including Set. It offers broader functionality than es6-set, covering more ES6 features and beyond.
babel-polyfill provides a more comprehensive set of polyfills for ES6 features, including Set. It is typically used in conjunction with Babel for projects that require transpiling newer ECMAScript code to be compatible with older environments.
Warning:
v0.1 version does not ensure O(1) algorithm complexity (but O(n)). This shortcoming will be addressed in v1.0
If you want to make sure your environment implements Set
, do:
require("es6-set/implement");
If you'd like to use native version when it exists and fallback to polyfill if it doesn't, but without implementing Set
on global scope, do:
var Set = require("es6-set");
If you strictly want to use polyfill even if native Set
exists, do:
var Set = require("es6-set/polyfill");
$ npm install es6-set
To port it to Browser or any other (non CJS) environment, use your favorite CJS bundler. No favorite yet? Try: Browserify, Webmake or Webpack
Best is to refer to specification. Still if you want quick look, follow examples:
var Set = require("es6-set");
var set = new Set(["raz", "dwa", {}]);
set.size; // 3
set.has("raz"); // true
set.has("foo"); // false
set.add("foo"); // set
set.size; // 4
set.has("foo"); // true
set.has("dwa"); // true
set.delete("dwa"); // true
set.size; // 3
set.forEach(function (value) {
// 'raz', {}, 'foo' iterated
});
// FF nightly only:
for (value of set) {
// 'raz', {}, 'foo' iterated
}
var iterator = set.values();
iterator.next(); // { done: false, value: 'raz' }
iterator.next(); // { done: false, value: {} }
iterator.next(); // { done: false, value: 'foo' }
iterator.next(); // { done: true, value: undefined }
set.clear(); // undefined
set.size; // 0
$ npm test
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.
FAQs
ECMAScript6 Set polyfill
The npm package es6-set receives a total of 2,461,293 weekly downloads. As such, es6-set popularity was classified as popular.
We found that es6-set demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A threat actor's playbook for exploiting the npm ecosystem was exposed on the dark web, detailing how to build a blockchain-powered botnet.
Security News
NVD’s backlog surpasses 20,000 CVEs as analysis slows and NIST announces new system updates to address ongoing delays.
Security News
Research
A malicious npm package disguised as a WhatsApp client is exploiting authentication flows with a remote kill switch to exfiltrate data and destroy files.